:getchar
48 c7 c0 00 00 00 00    # mov    rax,0x0
48 c7 c7 00 00 00 00    # mov    rdi,0x0
48 8d 35 63 00 00 00    # lea    rsi,[rip+0x63]        # 6000f0 <buf>
48 c7 c2 01 00 00 00    # mov    rdx,0x1
0f 05                   # syscall
48 83 f8 01             # cmp    rax,0x1
75 08                   # jne    6000a4 <getchar.getchar_fail>
48 8b 05 4d 00 00 00    # mov    rax,QWORD PTR [rip+0x4d]        # 6000f0 <buf>
c3                      # ret

:getchar.getchar_fail
48 c7 c0 ff ff ff ff    # mov    rax,0xffffffffffffffff
c3                      # ret

:putchar
48 89 05 3d 00 00 00    # mov    QWORD PTR [rip+0x3d],rax        # 6000f0 <buf>
48 c7 c0 01 00 00 00    # mov    rax,0x1
48 c7 c7 01 00 00 00    # mov    rdi,0x1
48 8d 35 28 00 00 00    # lea    rsi,[rip+0x28]        # 6000f0 <buf>
48 c7 c2 01 00 00 00    # mov    rdx,0x1
0f 05                   # syscall
c3                      # ret

:_start
e8 a1 ff ff ff          # call   600078 <getchar>
48 83 f8 ff             # cmp    rax,0xffffffffffffffff
74 07                   # je     6000e4 <_start.done>
e8 ca ff ff ff          # call   6000ac <putchar>
eb ee                   # jmp    6000d2 <_start>

:_start.done
48 89 c7                # mov    rdi,rax
48 c7 c0 3c 00 00 00    # mov    rax,0x3c
0f 05                   # syscall

:buf
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
